<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 给定两个数组，编写一个函数来计算它们的交集。
          输出结果中的每个元素一定是唯一的。 
        */
        var nums1 = [1,3,2];
        var nums2 = [2, 8];
        // 过滤数组,循环拿出num1数组中的每一个数据
        var res = nums1.filter(function (items) {
            // 拿num1中的数据 去muns2数据中检测nums2是否存在
            // nums.indexOf(item) 检测nums中是否有item这个数据
            // 有数据就返回 数据索引，没有数据就返回-1

            //比较两个数组，两个数组都有的数据才满足条件
            return nums2.indexOf(items) > -1;
        })

        // 去重
        var res1 = res.reduce(function(pre,cur){
            // 给pre赋值一个[]
            if(pre.indexOf(cur) === -1){
                //pre.push(cur);
                return pre.concat(cur);
            }else{
                return pre
            }
            // 三目运算
            // return (pre.indexOf(cur) === -1) ? pre.concat(cur) : pre
        },[])

        // 链式调用
        // var res = nums1.filter(function (items) {return nums2.indexOf(items) > -1;
        // }).reduce(function(pre,cur){return (pre.indexOf(cur) === -1) ? pre.concat(cur) : pre},[])


        // function norepeat() {
        //     // 新建空数组,来存放去重后的数据
        //     var res = [];
        //     // 数据遍历
        //     for(var i = 0; i < arr.length; i++){
        //         // 判断新数组中是否存在该数据
        //         if(res.indexOf(arr[i]) === -1){
        //             // 没有,就添加到新数组中
        //             res.push(arr[i]);
        //         }
        //     }
        //     return res
        // }
        // console.log(norepeat(arr))
    </script>
</body>

</html>